home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / indent.arc / INDENT.PRG < prev   
Text File  |  1985-10-05  |  4KB  |  178 lines

  1. **********************************************************************
  2. **  INDENT.PRG - WRITTEN APRIL 1985 BY KIRT GRUBBS (IN dBase II)
  3. **  CREATES CONSISTENT INDENTATION PATTERN FOR PROGRAM FILES
  4. **  DCONVERTED 5/85 BY MARK HEMSLEY
  5. **  UPDATED 6/85 BY MARK HEMSLEY
  6. **  (TO PROVIDE USER WITH PROGRAM STATUS AT EXECUTION)
  7. **  COMPLETLY RE-WRITTEN 8/85 BY MARK HEMSLEY - REDUCED EXECUTION TIME
  8. **  TO 1/3 OF ORIGINAL dBase II PROGRAM
  9. **  UPDATING CONT'D INCLLUDING MAJOR DEBUGGING 9/85
  10. **  TO 1/4 OF ORIGINAL dBase II PROGRAM
  11. **  LAST UPDATE: 09:25:41 09/20/85
  12. *
  13. SET SAFE OFF
  14. SET TALK OFF
  15. SET EXAC OFF
  16. CLEA ALL
  17. STOR 0 TO I,S,U
  18. STOR ' ' TO L
  19. STOR 'FAST INDENT VERSION 3.4' TO VERSION
  20. STOR 'HI' TO NAME
  21. DO WHIL LEN(TRIM(NAME))#0
  22. CLEA
  23. STOR '            ' TO NAME
  24. @ 15,15 SAY "PROGRAM NAME" GET NAME PICT "XXXXXXXXXXXX"
  25. READ
  26. IF LEN(TRIM(NAME))>0
  27. STOR TRIM(NAME) TO NAME
  28. IF .NOT.'.'$NAME
  29. STOR NAME+'.PRG' TO NAME
  30. ENDI
  31. IF .NOT.FILE(NAME)
  32. ? "FILE DOES NOT EXIST"
  33. WAIT
  34. ELSE
  35. STOR NAME+' '+SUBSTR(NAME,1,LEN(NAME)-4)+'.BAK' TO MHFILE
  36. !COPY &MHFILE
  37. USE INDENT.DBS
  38. ZAP
  39. CLEA
  40. ? VERSION+' IN PROGRESS.'
  41. ?
  42. ? '>>> WARNING! <<<   DO NOT INTERRUPT THIS PROGRAM,'
  43. ? '                   OR YOUR DATA FILE WILL BE DESTROYED!'
  44. SET CONS OFF
  45. @ 16,0 SAY 'NAME: '+NAME
  46. @ 14,0 SAY 'READING FILE...'
  47. APPE FROM &NAME SDF
  48. GO TOP
  49. @ 14,0 SAY 'SEARCHING......'
  50. LOCA FOR TRIM(LINE)='**  LAST UPDATE:'
  51. IF .NOT. EOF()
  52. REPL LINE WITH '**  LAST UPDATE: '+TIME()+' '+DTOC(DATE())
  53. ENDI
  54. GO TOP
  55. @ 14,0 SAY 'UPDATING.......'
  56. IF LINE=SPAC(254)
  57. DELE
  58. PACK
  59. ENDI
  60. GO BOTT
  61. STOR RECN() TO LENGTH
  62. @ 12,0 SAY 'LENGTH: '+STR(RECNO())
  63. GO TOP
  64. SET ALTE TO &NAME
  65. SET ALTE ON
  66. @ 14,0 SAY '               '
  67. @ 14,0 SAY 'LINE: '
  68. SET ESCAPE OFF
  69. STOR TIME() TO START
  70. DO WHIL TIME()=START
  71. ENDD
  72. ************************************************
  73. STOR TIME() TO START
  74. DO WHIL .NOT. EOF()
  75. IF LINE=SPAC(254)
  76. ?
  77. ELSE
  78. @ 14,8 SAY RECN()
  79. RELE L
  80. STOR 0 TO S,U
  81. STOR TRIM(LINE) TO L
  82. DO WHIL L<'!'
  83. STOR SUBS(L,2,254) TO L
  84. IF L='              '
  85. STOR SUBS(L,15,254) TO L
  86. ENDI
  87. IF L='        '
  88. STOR SUBS(L,9,254) TO L
  89. ENDI
  90. IF L='  '
  91. STOR SUBS(L,3,254) TO L
  92. ENDI
  93. ENDD
  94. DO CASE
  95. CASE L='IF'
  96. STOR 3 TO S
  97. CASE L='DO WHIL'
  98. STOR 3 TO S
  99. CASE L='ENDI'
  100. STOR -3 TO S
  101. CASE L='ENDD'
  102. STOR -3 TO S
  103. CASE L='CASE'
  104. STOR 5 TO U
  105. CASE L='OTHE'
  106. STOR 5 TO U
  107. CASE L='DO CASE'
  108. STOR 8 TO S
  109. CASE L='ENDC'
  110. STOR -8 TO S
  111. CASE L='ELSE'
  112. STOR 3 TO U
  113. ENDC
  114. STOR S+I TO I
  115. IF S>0
  116. STOR S TO U
  117. ENDI
  118. ?? SPAC(I-U)+L
  119. ?
  120. ENDI
  121. SKIP
  122. ENDD
  123. STOR TIME() TO FINISH
  124. *****************************************************
  125. SET ESCAPE ON
  126. @ 14,40 SAY 'DONE'
  127. SET ALTE OFF
  128. SET ALTE TO
  129. ZAP
  130. SET CONS ON
  131. STARTHOUR=VAL(SUBSTR(START,1,2))
  132. STARTMIN=VAL(SUBSTR(START,4,2))
  133. STARTSEC=VAL(SUBSTR(START,7,2))
  134. FINISHHOUR=VAL(SUBSTR(FINISH,1,2))
  135. FINISHMIN=VAL(SUBSTR(FINISH,4,2))
  136. FINISHSEC=VAL(SUBSTR(FINISH,7,2))
  137. TIMEINSEC1=(STARTHOUR*3600)+(STARTMIN*60)+STARTSEC
  138. TIMEINSEC2=(FINISHHOUR*3600)+(FINISHMIN*60)+FINISHSEC
  139. TIMEINSEC=TIMEINSEC2-TIMEINSEC1
  140. CLEA
  141. ? 'RUNTIME REPORT ON INDENT'
  142. ? 'TODAY IS '+DTOC(DATE())+' '+TIME()
  143. ?
  144. ? 'REPORT FOR : '+VERSION
  145. ?
  146. ?
  147. ? 'FILE           : '+NAME
  148. ? 'START          : '+START
  149. ? 'FINISH         : '+FINISH
  150. ? 'LENGTH         : '+STR(LENGTH)
  151. ?
  152. ? 'TIME IN SECONDS: '+STR(TIMEINSEC)
  153. ? 'TIME           : '
  154. TIMEHOUR=INT(TIMEINSEC/3600)
  155. SET EXAC OFF
  156. IF STR(TIMEHOUR)='*'
  157. STOR 0 TO TIMEHOUR
  158. ENDI
  159. TIMEMIN=INT((TIMEINSEC-TIMEHOUR*3600)/60)
  160. IF STR(TIMEMIN)='*'
  161. STOR 0 TO TIMEMIN
  162. ENDI
  163. TIMESEC=INT(TIMEINSEC-((TIMEHOUR*3600)+(TIMEMIN*60)))
  164. ?? STR(TIMEHOUR,2,0)+':'+STR(TIMEMIN,2,0)+':'+STR(TIMESEC,2,0)
  165. ?
  166. SET DECI TO 3
  167. STOR  TIMEINSEC/LENGTH TO REFERANCE
  168. STOR .146342 TO REINDENT
  169. ? 'REFERANCE      : '+STR(REFERANCE,7,3)+' SECONDS PER RECORD'
  170. ?
  171. WAIT
  172. ENDI
  173. ENDI
  174. ENDD
  175. USE
  176. CLEA
  177.  
  178.